Welcome to pandas!

6.9 筛选索引之筛选

在pandas中对DateFrame表格筛选时,不仅可以对数据行行筛选,也可以对索引执行筛选,从而达到选择数据的目的,df.filter()函数则具有筛选索引的功能,结构如下:

df.filter(items=None,like=None,regex=None,axis=None)

items :精确匹配,写入保留的标签名称,标签名称存储在列表中

like :模糊匹配,写入要在索引中搜索的关键字;

regex :正则匹配,写入要匹配索引的正则表达式

axis :要筛选的方向;


import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.筛选索引内容.xlsx" , index_col = 0 )

df1=df.filter([ "云南","山东" ], axis = 1 ) # 默认为axis=1,可以省略不写,必须加中括,否则查不到想要的结果

df2=df.filter([ "活塞","曲轴" ], axis = 0 )

print (df1)

print (df2)

返回:

云南 山东
推杆 24 71
活塞环 34 29
凸轮轴 23 27
空气滤芯 12 39
活塞 67 36
摇臂轴 76 33
曲轴 64 75
进气歧管 65 53

云南 山西 山东 河南 湖南 黑龙江
活塞 67 42 36 43 99 45
曲轴 64 23 75 26 76 83

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.筛选索引内容.xlsx" , index_col = 0 )

df1=df.云南.filter([ "活塞" ]) #Series数据也可以

print (df1)

返回:

活塞 67

Name: 云南, dtype: int64


模糊筛选是在like参数中设置,写入要查找的关键字,只要包含有关键字的索引标签都会保留下来。

正则筛选是在regex参数中的设置,写入要匹配索引标签的正则表达式,匹配成功的索引标签将保留下来。

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.筛选索引内容.xlsx" , index_col = 0 )

df1=df.filter(like= "轴" , axis = 0 )

print (df1)

返回:

云南 山西 山东 河南 湖南 黑龙江
凸轮轴 23 53 27 73 20 54
摇臂轴 76 72 33 81 56 77
曲轴 64 23 75 26 76 83

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.筛选索引内容.xlsx" , index_col = 0 )

df1=df.filter( regex = "^..$" , axis = 0 ) # ^..$表示两个字

print (df1)

返回:

云南 山西 山东 河南 湖南 黑龙江
推杆 24 43 71 26 56 54
活塞 67 42 36 43 99 45
曲轴 64 23 75 26 76 83